.. _输出文件格式说明: ************************************ 输出文件格式说明 ************************************ .. _ relax.json: ============================================================================== relax.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *relax.json 为 task = relax 时的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-1.png (1) ``relax.json`` 中包含 **1*N** 个结构体; (2)每个结构体保存着结构弛豫中每个离子步优化之后的结构信息,具体包含3部分信息: - :guilabel:`Atoms` 中保存着每个原子的信息,每个Atoms中包含5部分信息: - :guilabel:`Element` 为原子的元素名; * :guilabel:`Fix` 为原子是否固定; - :guilabel:`Mag` 为原子的初始磁矩; * :guilabel:`Position` 为原子的对应的坐标; - :guilabel:`Pot` 为原子的赝势信息; * :guilabel:`CoordinateType` 为坐标类型: **``Direct``** 为分数坐标, **``Cartesian``** 为笛卡尔坐标; - :guilabel:`Lattice` 为晶格常数; .. _ system.json: ============================================================================== system.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *system.json 为 task = scf 以及 task =relax 时的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-2.png (1) ``system.json`` 中包含6个结构体; (2) **AtomInfo** 中包含4部分信息: - **Atoms** 中保存着每个原子的信息;每个Atoms中包含2部分信息: - :guilabel:`Element` 为对应原子的元素名; * :guilabel:`Position` 为对应原子的对应的坐标; - :guilabel:`CoordinateType` 为坐标类型: **``Direct``** 为分数坐标, **``Cartesian``** 为笛卡尔坐标; * :guilabel:`Lattice` 为晶格常数; - :guilabel:`Grid` 为格点数目,绘制3维格点数据的时候需要使用 (3) :guilabel:`Magnetization` 中包含着总磁矩的信息; (4) **Eigenvalue** 中包含3部分信息: - :guilabel:`NumberOfBand` 为总能带数; * **Spin1** 和 **Spin2** 保存着能带相关的数据,其数据格式相同; **Spin1** 中包含3部分信息: - :guilabel:`BandEnergies` 中保存着每条能带每个 **K点** 对应的能量值; * :guilabel:`Kpoints` 中保存着每个 **K点** 的分数坐标; - :guilabel:`Occupation` 中保存着每条能带每个 **K点** 对应的电子占据值; .. note:: **注意: 当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。** (5) **Energy** 中包含3部分信息: - :guilabel:`EFermi` 为自洽或最后一步结构弛豫的费米能级的值; * :guilabel:`TotalEnergy` 为自洽或最后一步结构弛豫的总能的值; - :guilabel:`TotalEnergy0` 为自洽或最后一步结构弛豫的 **sgmia** 趋于 **0** 时近似总能的值; (6) **Force** 中包含1部分信息: - :guilabel:`ForceOnAtoms` 中保存着每个原子对应 **XYZ** 三个方向上的力的值; (7) **Stress** 中包含2部分信息: - :guilabel:`Direction` 中保存了 **Total stress** 的分量符号; * :guilabel:`Total` 中保存了在每个Direction分量上 **stress** 的值; .. _ dos.json: ============================================================================== dos.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *dos.json 为 task = dos 时的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-3.png :align: center (1) ``dos.json`` 中包含2个结构体; (2) :guilabel:`AtomInfo` 同 ``system.json`` 中的AtomInfo数据; (3) **DosInfo** 中包含11部分信息: - :guilabel:`DosEnergy` 为所计算态密度的能量点的数据; * :guilabel:`EFermi` 为费米能级值; - :guilabel:`EnergyMax` 为所计算态密度的最大能量值; * :guilabel:`EnergyMin` 为所计算能带的最小能量值; - :guilabel:`SpinType` 为计算时所设置的磁性类型; * :guilabel:`Magnetization` 为投影到每个原子上的磁矩分量; - :guilabel:`NumberOfDos` 为所计算的态密度的所有能量点的数目; * :guilabel:`Orbit` 为投影轨道信息; - :guilabel:`IsProject` 为态密度计算时是否打开了投影功能; * **Spin1** 和 **Spin2** 保存着态密度相关的数据,其数据格式相同; **Spin1** 中包含2部分信息: - :guilabel:`Dos` 为总的态密度的数据; * :guilabel:`ProjectDos` 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息: - :guilabel:`AtomIndex` 为当前 **Contribution** 对应的元素序号,该序号与AtomInfo中的 **Atoms** 的序号相同; * :guilabel:`Contribution` 为 **AtomIndex** 对应原子和 **OrbitIndex** 对应轨道在每个能量点下的态密度贡献值; - :guilabel:`OrbitIndex` 为当前 **Contribution** 对应的轨道序号,该序号与DosInfo中的Orbit的序号相同; .. note:: **注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。** .. _ band.json: ============================================================================== band.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *dos.json 为 task = band 时的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-4.png :align: center (1) ``band.json`` 中包含2个结构体; (2) :guilabel:`AtomInfo` 同 ``system.json`` 中的 **AtomInfo** 数据; (3) **BandInfo** 中包含10部分信息: - :guilabel:`SymmetryKPointsIndex` 为能带计算时高对称K点的起始序号; * :guilabel:`IsProject` 为能带计算时是否打开了投影功能; - :guilabel:`NumberOfDos` 为所计算的态密度的所有能量点的数目; * :guilabel:`SpinType` 为计算时所设置的磁性类型; - :guilabel:`SymmetryKPoints` 为能带计算时高对称K点的字母表示; * :guilabel:`SymmetryKPointsIndex` 为能带计算时高对称K点的起始序号; - :guilabel:`IsProject` 为能带计算时是否打开了投影功能; * :guilabel:`NumberOfDos` 为所计算的态密度的所有能量点的数目; - :guilabel:`Orbit` 为投影轨道信息; * :guilabel:`IsProject` 为态密度计算时是否打开了投影功能; - **Spin1** 和 **Spin2** 保存着态密度相关的数据,其数据格式相同, **Spin1** 中包含2部分信息: * :guilabel:`Dos` 为总的态密度的数据; - :guilabel:`ProjectDos` 包含原子数×轨道数目大小的结构体,每个结构体中包含着3部分信息: * :guilabel:`AtomIndex` 为当前 **Contribution** 对应的元素序号,该序号与AtomInfo中的 **Atoms** 的序号相同; - :guilabel:`Contribution` 为 **AtomIndex** 对应原子和 **OrbitIndex** 对应轨道在每个能量点下的态密度贡献值; * :guilabel:`OrbitIndex` 为当前 **Contribution** 对应的轨道序号,该序号与DosInfo中的 **Orbit** 的序号相同; .. note:: **注意:当只有Spin1的时候,Spin1为总的信息 当Spin1和Spin2同时存在的时候,Spin1为自旋向上的信息,Spin2为自旋向下的信息。** .. _ rho.json: ============================================================================== rho.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *rho.json 为 task = scf 以及 task =relax时的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-5.png :align: center (1) ``rho.json`` 中包含2个结构体; (2) **AtomInfo** 同 ``system.json`` 中的 **AtomInfo** 数据; (3) **Rho** 中包含信息: - ``TotalCharge`` 和 ``SpinCharge`` ; ``TotalCharge`` 和 ``SpinCharge`` 数据格式相同,都表示电荷密度其数据大小为AtomInfo中3个Grid的乘积; .. note:: **注意:在当只有TotalCharge的时候,TotalCharge为总的电荷密度;当TotalCharge和SpinCharge同时存在的时候,TotalCharge为总的电荷密度,SpinCharge为自旋电荷密度;** .. _ elf.json: ============================================================================== elf.json ============================================================================== -------------------------------------------------------------------------------------------------------------------------------------------- *elf.json 可为 task = elf 和 task = scf 且 io.elf设置为 true 以及 task = relax 且 io.elf设置为 true这 3种 task下的输出文件,当task类型为其他时,该文件不输出。* .. figure:: images/3-6.png :align: center (1) ``elf.json`` 中包含2个结构体; (2) **AtomInfo** 同 ``system.json`` 中的AtomInfo数据; (3) **elf** 中包含信息: - ``TotalELF`` 和 ``SpinELF`` ; ``TotalELF`` 和 ``SpinELF`` 数据格式相同,都表示电子局域密度的数据,其数据大小为AtomInfo中3个Grid的乘积; .. note:: **注意:在当只有TotalELF的时候,TotalELF为总的电荷密度;当TotalELF和SpinELF同时存在的时候,TotalELF为总的电荷密度,SpinELF为自旋电荷密度;** .. _ potential.json: ============================================================================== potential.json ============================================================================== *potential.json 可为 task = potential 和 task = scf 且 io.potential设置为 true 以及 task = relax 且 io.potential设置为 true这3种 task下的输出文件,当 task类型为其他时,该文件不输出。* .. figure:: images/3-7.png :align: center (1) ``potential.json`` 中包含2个结构体; (2) **AtomInfo** 同 ``system.json`` 中的AtomInfo数据; (3) **potential** 中包含4部分信息: - ``TotalElectrostaticPotential`` 和 ``SpinElectrostaticPotential`` ; ``TotalElectrostaticPotential`` 和 ``SpinElectrostaticPotential`` 数据格式相同,都表示静电势函数的数据,其数据大小为AtomInfo中 **3个Grid** 的乘积; - ``TotalLocalPotential`` 和 ``SpinLocalPotential`` ; ``TotalLocalPotential`` 和 ``SpinLocalPotential`` 数据格式相同,都表示局域势函数的数据,其数据大小为AtomInfo中 **3个Grid** 的乘积; .. note:: **注意:当在DS-PAW输入文件XXX.in中设置potential.type为hartree/total/all时,分别保存LocalPotential/ElectrostaticPotential/both两种类型的势函数的数据;在当只有Total(XXX)Potential的时候,Total(XXX)Potential为总的势函数;当Total(XXX)Potential和Spin(XXX)Potential同时存在的时候,Total(XXX)Potential为总的势函数,Spin(XXX)Potential为自旋势函数;**